Invoice payment system and method

ABSTRACT

A code scanner ( 106 ) scans a quick response (QR) code that encodes a merchant identification codes assigned to a merchant that generates an invoice. The first invoice comprises invoice data. The code scanner decodes the QR code to recover the merchant identification code encoded within the QR code. The code scanner can display the invoice data and one or more selectable payment instruments. The code scanner selects a first payment instrument to pay the first invoice. The code scanner transmits, to an application server ( 102 ) for attempting to pay the invoice, the merchant identification code, data pertaining to the selected payment instrument, and at least a portion of the invoice data. The application server can attempt to pay the invoice and notify the code scanner whether the attempt to pay the invoice was successful. The code scanner can display notification that indicates whether attempt to pay the invoice was successful.

PRIORITY CLAIMS

This application claims the benefit of GB Application No. 1119375.2,filed Nov. 10, 2011, and claims the benefit of U.S. ProvisionalApplication No. 61/587,416, filed Jan. 17, 2012. GB Application1119375.2 and U.S. Provisional Application No. 61/587,416 areincorporated herein by reference for all purposes.

BACKGROUND

Unless otherwise indicated herein, the elements described in thissection are not prior art to the claims and are not admitted to be priorart by inclusion in this section.

Payment of invoices from service providers such as utility companies,doctors, dentists and the like can be tedious and time-consuming. Forexample, when a customer receives an invoice from a utility company, thecustomer may pay the invoice by issuing and posting a cheque, by meansof an online banking transaction, or through use of a credit or debitcard on the utility company's website.

Payment by cheque requires the customer to write out the cheque, addressan envelope and mail the cheque together with a remittance slip thatreflects the relevant invoice details. On the other hand, payment of theinvoice by means of an online banking transaction requires the customerto set up the invoice issuer as a beneficiary on the user's bankingaccount. If the customer later wishes to use a different banking accountfrom which to pay, it will be necessary for the customer to again set upthe invoice issuer as a beneficiary on the different banking account.Lastly, in order to pay the invoice by means of a credit or debit card,the customer may be required to furnish the relevant card particulars tothe invoice issuer's website for storage on the invoice issuer's server,which is risky as such particulars may be misappropriated.

The applicant has appreciated the desirability of a simpler process forpaying invoices than that described above.

OVERVIEW

Example embodiments are described herein. In one respect, an exampleembodiment takes the form of a method comprising (i) scanning, using acode scanner, a first quick response (QR) code that encodes a merchantidentification code assigned to a merchant that generates a firstinvoice, wherein the first invoice comprises first invoice data, (ii)decoding, using the code scanner, the first QR code to recover themerchant identification code encoded within the first QR code, (iii)selecting, using the code scanner, a first payment instrument to pay thefirst invoice, (iv) transmitting, from the code scanner to anapplication server for an initial attempt of paying the first invoice,the merchant identification code encoded in the first QR code, datapertaining to the first payment instrument, and at least a portion ofthe first invoice data, and (v) receiving, at the code scanner from theapplication server, first status data indicating whether the initialattempt of paying the first invoice was successful or unsuccessful.

In another respect, an example embodiment takes the form of a codescanner comprising (i) a processor, (ii) a scanner configured to scan afirst quick response (QR) code that encodes a merchant identificationcode assigned to a merchant that generates a first invoice, wherein thefirst invoice comprises first invoice data, (iii) a data storage devicethat stores a computer-readable scanner application executable by theprocessor to decode the first QR code to recover the merchantidentification code encoded within the first QR code, (iv) a userinterface configured to select a first payment instrument to pay thefirst invoice, and (v) a network interface. The network interface isconfigured to transmit, to an application server for an initial attemptof paying the first invoice, the merchant identification code encoded inthe first QR code. data pertaining to the first payment instrument, andat least a portion of the first invoice data. The network interface isconfigured to receive, from the application server, first status dataindicating whether the initial attempt of paying the first invoice wassuccessful or unsuccessful.

In yet another respect, an example embodiment takes the form of a methodcomprising (i) receiving, at an application server from a first codescanner, a merchant identification code assigned to a merchant thatgenerates a first invoice, wherein the first invoice comprises firstinvoice data, (ii) receiving, at the application server from the firstcode scanner, data pertaining to a first payment instrument selected foran initial attempt of paying the first invoice, (iii) receiving, at theapplication server from the first code scanner, at least a portion ofthe first invoice data, (iv) determining, at the application server,whether processing the merchant identification code, the data pertainingto the first payment instrument, and the at least a portion of the firstinvoice data results in successful or unsuccessful payment of the firstinvoice, and (v) transmitting, from the application server to the firstcode scanner, first status data indicating whether the initial attemptof paying the first invoice was successful or unsuccessful.

In yet another respect, an example embodiment takes the form of anapplication server comprising (i) a processor, (ii) a data storagedevice comprising computer-readable program instructions, (iii) anetwork interface to receive, from a first code scanner, (a) a merchantidentification code assigned to a merchant that generates a firstinvoice, wherein the first invoice comprises first invoice data, (b)data pertaining to a first payment instrument selected for an initialattempt of paying the first invoice, and (c) at least a portion of thefirst invoice data. The program instructions are executable by theprocessor to determine whether processing the merchant identificationcode, the data pertaining to the first payment instrument, and the atleast a portion of the first invoice data results in successful orunsuccessful payment of the first invoice. The program instructions areexecutable by the processor to cause the network interface to transmitfirst status data to the first code scanner. The first status dataindicates whether the initial attempt of paying the first invoice wassuccessful or unsuccessful.

In yet another respect, an example embodiment takes the form of a methodcomprising (i) receiving, at a merchant server, a first quick response(QR) code that encodes a merchant identification code assigned to amerchant that generates a first invoice, wherein the first invoicecomprises first invoice data, (ii) providing, from the merchant serverto a code scanner user, the first invoice and the first QR code, and(iii) receiving, at the merchant server from an application server thatprocesses payments of invoices, a message indicating a payment towardsthe first invoice was successfully made.

In still yet another respect, an example embodiment takes the form of amerchant server comprising (i) a processor, (ii) a data storage devicecomprising computer readable program instructions, and (iii) a networkinterface that (a) receives a first quick response (QR) code thatencodes a merchant identification code assigned to a merchant thatgenerates a first invoice, wherein the first invoice comprises firstinvoice data, (b) transmits the first invoice and the first QR code to acode scanner; and (c) receives, from an application server thatprocesses payments of invoices, a message indicating a payment towardsthe first invoice was successfully made.

These as well as other aspects and advantages will become apparent tothose of ordinary skill in the art by reading the following detaileddescription, with reference where appropriate to the accompanyingdrawings. Further, it should be understood that the embodimentsdescribed in this overview and elsewhere are intended to be examplesonly and do not necessarily limit the scope of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

Example embodiments are described herein with reference to the drawings,in which:

FIG. 1 is a schematic representation of a system for the payment ofinvoices;

FIG. 2 is a representation of a webpage of a merchant portal websitehosted on an application server in the system of FIG. 1;

FIG. 3 illustrates an example quick response (QR) code;

FIG. 4 is a block diagram of a code scanner in accordance with at leastone of the example embodiments;

FIG. 5 is a block diagram of an application server in accordance with atleast one of the example embodiments;

FIG. 6 is a flow chart of functions to carry out payment of an invoicein accordance with a first embodiment of the system of FIG. 1;

FIG. 7 is a flow chart of functions to carry out payment of an invoicein accordance with a second embodiment of the system of FIG. 1; and

FIG. 8 is a block diagram of a merchant server in accordance with atleast one of the example embodiments.

DETAILED DESCRIPTION I. Introduction

This description describes, among other things, example embodiments withrespect to paying an invoice. In this description the terms ‘user’ and‘customer’ can be used interchangeably depending on the context, as canthe terms “invoice issuer” and “merchant,” and the terms “invoice” and“bill.”

In this description, the articles “a” or “an” are used to introduceelements of the example embodiments. The intent of using those articlesis that there is one or more of the elements. The intent of using theconjunction “or” within a described list of at least 2 terms is toindicate that any of the listed terms or any combination of the listedterms. The use of ordinal numbers such as “first,” “second,” “third” andso on is to distinguish respective elements rather than to denote aparticular order of those elements.

The following abbreviations or acronyms are used in the description:

CVC—Card Verification Code; FIG.—Figure; FIGs.—Figures;Inc.—Incorporated; PIN—Personal Identification Number; QR—QuickResponse; Scanner App—Scanner Application Program; and

SMS—Short message service.

II. Example Architecture

FIG. 1 depicts a schematic representation of a system 100 for payment ofinvoices in accordance with example embodiments described herein. Thesystem 100 includes an application server 102, a merchant server 104 anda code scanner 106 device configured to scan and decode Quick Response(QR) codes which are well known and widely used. The code scanner 106can take the form of a conventional smartphone handset provisioned withsoftware for scanning QR codes, a web browser, and a wireless connectionto the internet. The code scanner 106 can be referred to as a “mobilewireless communication device,” a “mobile smartphone handset” or, moresimply, a “mobile smartphone” or “smartphone.” As an example, the mobilewireless communication device can be a personal digital assistant or acellular telephone. As another example, the mobile wirelesscommunication device can be an iPhone, such as the iPhone5, or an iPadsold by Apple Inc., Cupertino, Calif., United States. The code scanner106 does not need to be a mobile device, but can be a device thatremains attached to a stationary internet-enabled device.

The application server 102, the merchant server 104 and the code scanner106 can communicate with each other using a communication network 108.The communication network 108 can comprise a wide-area network, such asthe internet.

Communication between the application server 102 and the code scanner106 can be facilitated by using a server-hosted program (not shown) anda scanner application program (a ‘scanner app’) that is installed andexecuted on the code scanner 106. In another respect, communicationbetween the application server 102 and code scanner 106 can occur usingnetwork interface 152 (shown in FIG. 4) and network interface 184 (shownin FIG. 5).

A user can download a copy of the scanner app 164 from a downloadrepository (for example, data storage device 188 in FIG. 5) and installthe scanner app 164 on the code scanner 106. On, during, or afterinstallation, the scanner app 164 creates a user-profile 110 on the codescanner 106 and prompts the user to manually provide personal attributessuch as, the user's first name, the user's last name, an e-mail address,a physical address and particulars of one or more payment instrumentssuch as credit cards, debit cards, e-wallets and the like. In accordancewith at least some example embodiments, the user-profile 110 (forexample, the data in the user-profile 110) is stored locally on the codescanner 106 and is not passed to the application server 102 for storageat application server 102.

The application server 102 hosts a merchant portal web site 120 thatenables merchants to register and create individual merchant profilesthat are maintained by the application server 102 in a merchant database112. The merchant portal website 120 can be referred to as a “portalwebsite.” Merchant registration and creation of a merchant profile inthe merchant database 112 can be performed online by the merchant portalwebsite 120. A merchant can use a merchant computing device 130including a display for displaying websites to display merchant portalwebsites and an input device for selecting or entering data onto themerchant portal websites.

FIG. 2 shows an example webpage 200 of the merchant portal website 120.The webpage 200 can display a registration form 201 that a merchant cancomplete in order to register with the merchant portal website 120.Registering with the merchant portal website 120 can be referred to asregistering with application server 102. The webpage 200 can be ahomepage of the merchant portal website 120. As an example, theregistration form 201 can include the following fields: a merchant'sbusiness name 202, a merchant's business address 204, and a descriptionof the merchant's business 206. As an example, the business descriptioncan be a utility company, an internet service provider, a doctor, adentist, or some other business description. As another example, theform 201 can include a field for the merchant to enter data indicatingan account identifier of an account to which invoice payments are to bemade. An account identifier can identify the merchant's bank accountnumber. Other examples of fields on the registration form 201 arepossible.

Entering data into the registration form 201 can occur, for example, bytyping data or selecting data from a list of predetermined data.Selecting a “sign up” selector or some other selector on registrationform 201 can cause the merchant computing device 130, displaying thewebpage 200, to transmit data entered into form 201 to the applicationserver 102 for subsequent storage as a merchant profile within merchantprofiles 142.

A merchant can, in this manner, arrange for the merchant to use QR-basedinvoice payment. The application server 102 can assign a unique merchantidentification code to each merchant business configured in this mannerand the merchant identification code is stored in the merchant's profilein the merchant database 112. Additionally or alternatively, eachmerchant identification code can be provided to and stored with a QRsource that serves QR codes to the merchant server 104. For the sake ofbeing brief, a merchant identification code can be referred to as an“identification code.” A merchant identification code can, for example,be a unique numeric code, a unique alphanumeric code, or a uniquebusiness name. A business name entered using registration form 201 canbe appended with a prefix or suffix, by the application server 102, tochange the entered business name into a unique business name if amerchant with a similar business name has already registered withapplication server 102.

FIG. 3 illustrates an example QR code 999. QR code 999 can be encoded asa payment QR code. The example embodiments may use any of a variety ofexample QR codes. In one respect, QR code 999 can be configured as astatic QR code. As an example, a static QR code comprises data common tomultiple invoices a merchant produces, but does not include differingdata that differs between 2 or more invoices. The common data can, forexample, comprise a merchant identification code the merchant uses oneach of its invoices. The differing data can, for example, comprise aninvoice number or amount due.

In another respect, QR code 999 can be configured as a dynamic QR code.A dynamic QR code can include data fields that a merchant can select thedata to encode into one or more of the data fields. As an example, thedata fields of a dynamic QR code can comprise, but is not limited to,one or more of the following data fields: a name and address of themerchant, a name and address of the customer, an invoice identifier, adue date for paying the invoice, a date indicating when the invoice wasgenerated, a description and a corresponding cost of each line itemsthat appears on the invoice, a tax amount, a total amount due, a penaltyamount if the invoice is paid after the due date, and a penalty amountif payment is attempted by cheque with insufficient funds. Otherexamples of data fields a merchant can populate to when generating aninvoice are also possible. A dynamic QR code can include a merchantidentification code of the merchant generating the dynamic QR code.

Next, FIG. 4 is a block diagram depicting an example embodiment of codescanner 106. As shown in FIG. 4, code scanner 106 includes (i) aprocessor 150, (ii) a network interface 152 for transmitting data to andreceiving data from communication network 108, (iii) a user interface154, (iv) a scanner 156 configured to scan (for example, capture) QRcodes, and (v) a data storage device 158, all of which can be linkedtogether via a system bus or other connection mechanism 160. Datastorage device 158 includes computer-readable program instructions(CRPI) 162, the scanner app 164, and a user-profile 110. CRPI 162 caninclude the scanner app 164. Data storage device 158 can comprise anon-transitory computer-readable storage medium readable by processor150. Each computer-readable storage medium described herein can comprisevolatile and/or non-volatile storage components, such as optical,magnetic, organic or other memory or disc storage, which can beintegrated in whole or in part with a processor.

Each processor described herein can comprise one or more general purposeprocessors (for example, INTEL single core microprocessors or INTELmulticore microprocessors) or one or more special purpose processors(for example, application specific integrated circuits (ASICs) ordigital signal processors (DSPs)). Processor 150 is configured toexecute CRPI 162.

Each user interface described herein can comprise (i) one or more outputelements to present information (for example, data or a form) to a userof the device comprising the user interface, and (ii) one or more inputelements to input user data (for example, a user selection or form fielddata). The output elements can, for example, comprise a display tovisually present information or a loud speaker to audibly presentinformation. The input elements can, for example, comprise a computermouse, a keyboard, a touchscreen, or a microphone.

FIG. 5 is a block diagram depicting an example embodiment of applicationserver 102. As shown in FIG. 5, application server 102 can include (i) aprocessor 182, (ii) a network interface 184 for transmitting data to andreceiving data from communication network 108, (iii) a user interface186, and (iv) a data storage device 188, all of which can be linkedtogether via a system bus or other connection mechanism 190. Datastorage device 188 can include (for example, store) (i) CRPI 192, (ii)the scanner app 194 for downloading to code scanners, (iii)user-profiles 198, (iv) merchant website identification codes 140 formerchant businesses, and (v) merchant database 112 including merchantprofiles 142. CRPI 192 can include the scanner app 194. Data storagedevice 188 can comprise a non-transitory computer-readable storagemedium readable by processor 182. Processor 182 is configured to executeCRPI 192.

FIG. 8 is a block diagram depicting an example embodiment of merchantserver 104. As shown in FIG. 8, merchant server 104 can include (i) aprocessor 800, (ii) a network interface 802 for transmitting data to andreceiving data from communication network 108, (iii) a user interface804, (iv) a printer 806, and a data storage device 808, all of which canbe linked together via a system bus or other connection mechanism 810.

Network interface 802 can interface to merchant computing device 130using communication link 108. Alternatively, network interface 802 canlink to user interface 804 using connection mechanism 810. In accordancewith that latter arrangement, user interface 804 can comprise merchantcomputing device 130. Network interface 802 can receive QR codes from aQR source, transmit QR codes to electronic display device 132. Networkinterface 802 can receive invoices from the merchant's accountingsystem.

Printer 806 can comprise a device configured to print or otherwisegenerate hardcopies of invoices or QR codes. Alternatively oradditionally, printer 806 can comprise an interface connectable to thedevice configured to print or otherwise generate hardcopies of invoicesor QR codes.

Data storage device 808 can include (for example, store) CRPI 812,customer data 814, and QR codes 816. CRPI 812 can comprise programinstructions that are executable to generate and transmit, to a QRsource, requests for QR codes. CRPI 812 can comprise programinstructions for receiving invoices from the merchant's accountingsystem, and for sending the received invoices to printer 804. CRPI 812can comprise program instructions to process payments carried out atapplication server 102.

III. Example Operation A

The system 100 can be used to pay a merchant invoice by use of the codescanner 106. The following example describes an application of thesystem 100 by a user who wishes to pay an invoice from a utilitycompany. In addition to this particular example, the system 100 is alsoapplicable to payment of other types of invoices such as, for example,invoices from telecommunication providers, hospitals, and the like. Themerchant (in this example, the utility company) will have alreadyregistered on the portal website 120 and created a merchant profile 142in the merchant database 112. The merchant profile 142 includes amerchant website identification code 140 assigned by the applicationserver 102.

FIG. 6 is a flow chart depicting a set of functions 650 that can becarried out in accordance with one or more example embodiments. The setof functions 650 can be performed to pay the utility company invoice.The utility company can operate merchant server 104. A customer of theutility company can operate code scanner 106 to pay the invoice. Thecustomer can be referred to as a user. The set of functions 650 areshown within blocks 600 through 630. A description of those blocks nowfollows.

The utility company can provide the user with an invoice that contains,for example, a name and address of the merchant, a name and address ofthe customer, an invoice number, a date, a description and acorresponding cost of each line item that appears on the invoice, anytax due such as such as sales tax or value-added tax included in theinvoice and a total amount due. The invoice can be prepared by themerchant's accounting system.

At block 600, the merchant server 104 provides a payment QR code thatencodes the merchant identification code 140 in the merchant profile 142and all the details contained in the invoice. The payment QR code may begenerated by the merchant server 104 or can be served to the merchantserver by an external source of QR codes (not shown). The invoice andthe payment QR code can be provided, individually or in combination, tothe user. For example, the merchant server 104 or printer 804 can printa hardcopy of the invoice that contains the payment QR code and that isthen mailed to the user, or can print the QR code separately from thehardcopy of the bill.

At block 602, the user can use the scanner app 164 and the scanner 156to scan the payment QR code on the hardcopy of the invoice. At block604, the scanner app 164 decodes the scanned payment QR code to recoverthe encoded data that it contains namely, the merchant identificationcode and the invoice details. At block 606 the scanner app 164 displaysa page (not shown) on the user interface 154 with all the invoicedetails.

At block 608, the user can review the invoice details displayed on thepage by the scanner app 164 and amend the displayed invoice data, ifnecessary. After reviewing and amending, if necessary, the invoice data,the user can select, at block 610, a payment instrument to pay the bill.

At block 612, the user can accept the invoice for payment. Accepting theinvoice can occur by entering a selection using user interface 154. Thescanner app 164 then transmits to the application server 102, at block614, the merchant identification code, the invoice number, the amount tobe paid and the details of a payment instrument to be used for payment(for example, a credit or debit card number, a cardholders name, a cardexpiry date, a CVC, a PIN, or a mailing code associated with thecardholder's billing address, as stored in the user-profile 110). Themailing code, for example, can include a mailing code, such as a ZIPcode, associated assigned to the cardholder's billing address orresidence.

Once the details of the selected payment instrument have been receivedat the application server 102, the particulars of the financialtransaction (for example, the amount to be paid, and the merchant andpayment details) are sent to a payment processor (not shown) forprocessing (at block 616).

At block 618, the application server 102 or processor 182, executingCRPI 192, can determine whether the payment was successful orunsuccessful. The payment processor can generate and return a paymentstatus indicator, for example, either successful or unsuccessful. If thepayment status is successful, the application server 102 notifies thescanner app 164, at block 620, that payment has been successful and thedisplayed page refreshes to indicate that the merchant's invoice hasbeen paid (block 622). If, on the other hand, the payment status isunsuccessful, the application server 102 notifies the scanner app 164,at block 624, that payment has been unsuccessful and the page displayedby the scanner app 164 refreshes to request the user to select adifferent payment instrument and re-attempt payment (block 626).

Re-attempting payment can include the code scanner 106 transmittingpayment data, associated with the different payment instrument, to theapplication server 102 for processing payment of the invoice. If themerchant accepts payments less than the total amount due on the invoice,such as a minimum payment amount, re-attempting payment of the invoicecan include using the same payment instrument (or the different paymentinstrument) with an amount less than the total amount due. Suchre-attempt to pay the invoice may be successful if the amount less thanthe total amount due does not deplete the funds in an account associatedwith the payment instrument or does not cause a credit limit of thepayment to be exceeded.

At block 628, if the payment status indicator is successful, theapplication server 102 or the network interface 184 can transmit theinvoice number and the amount paid by the user to the merchant server104. Processor 182 can execute CRPI 192 to generate a message (forexample, one or more messages) that contains the invoice number and theamount paid. Block 628 can include transmitting that message to merchantserver 104.

At block 630, merchant server 104 or processor 800, executing CRPI 810,can process the invoice number and the amount paid according to themerchant's accounting procedures. Processing the invoice number and theamount paid can include receiving the message transmitted block 628.After processing the invoice number and the amount paid, merchant server104 can transmit, to electronic display device 132 or code scanner 106,a payment receipt showing the amount paid at block 616.

IV. Example Operation B

FIG. 7 is a flow chart depicting a set of functions 750 that can becarried out in accordance with an alternative embodiment. The set offunctions 750 can be performed to pay the utility company's invoice orsome other invoice. The set of functions 750 are shown within blocks 700through 730. A description of those blocks now follows.

The utility company can provide the user with an invoice that contains,for example, a name and address of the merchant, a name and address ofthe customer, an invoice identifier (such as an invoice number), a date,a description and a corresponding cost of each line item that appears onthe invoice, any tax due such as such as sales tax or value-added taxincluded in the invoice and a total amount due. The invoice can beprepared by the merchant's accounting system. The merchant server 104,using printer 804, can print a hardcopy of the invoice.

At block 700, the merchant can affix a sticker bearing a QR code ontothe hardcopy of the invoice that is then mailed to the user.Alternatively the merchant server can print the payment QR code as partof the hardcopy invoice. The payment QR code is a static QR code thatencodes the merchant identification code 140 in the merchant profile142. Other examples of ways in which the merchant can provide a staticQR code are also possible.

At block 702, the user can use the scanner app 164 and the scanner 156to scan the payment QR code on the hardcopy of the invoice. At block704, the scanner app 164 decodes the scanned payment QR code to recoverthe encoded data that it contains, namely the merchant identificationcode.

Block 706 includes displaying a data entry form. As an example, thescanner app 164 displays a page (not shown) on the user interface 154that contains the merchant identification code and a form in which theuser can enter the invoice number and an amount to be paid on theinvoice. In an alternative arrangement, the scanner app 164 can causethe user interface 154 to display the data entry form without themerchant identification code. In that alternative arrangement, thescanner app 164 can cause the user interface 154 to display a merchantname associated with the merchant identification code. The user of thecode scanner 106 may recognize the merchant name but not the merchantidentification code. The data storage device 158 can include data thatthe scanner app 164 can refer to identify the merchant name from themerchant identification code. Additionally or alternatively, the scannerapp 164 can request, from the application server 102, the merchant namethat is associated with the merchant identification code. Still further,the merchant name can be encoded within the static QR code and decodedby the scanner app 164. In accordance with one or more of the exampleembodiments, the merchant identification code can be or comprise abusiness name entered via webpage 200.

At block 708, the user can review and amend the amount to be paid. Afterreviewing and amending, if necessary, the invoice data, the user canselect, at block 710, a payment instrument with which to pay theinvoice.

At block 712 the user can accept the invoice for payment. Accepting theinvoice can occur by entering a selection using user interface 154. Thescanner app 164 then transmits to the application server, at block 714,the merchant identification code, the invoice number, the amount to bepaid and the details of the selected payment instrument. Once thedetails of the selected payment instrument have been received at theapplication server 102, the particulars of the financial transaction(for example, the amount to be paid, and the merchant and paymentdetails) are sent to a payment processor (not shown) for processing (atblock 716).

At block 718, the application server 102 or processor 182, executingCRPI 192, can determine whether the payment was successful. The paymentprocessor can generated and return a payment status indicator, forexample, either successful or unsuccessful. If the payment status issuccessful, the application server 102 notifies the scanner app 164, atblock 720, that payment has been successful and the displayed pagerefreshes to indicate that the merchant's invoice has been paid (block722). If, on the other hand, the payment status is unsuccessful, theapplication server 102 notifies the scanner app 164, at block 724, thatpayment has been unsuccessful and the page displayed by the scanner app164 refreshes to request the user to select a different paymentinstrument and re-attempt payment (block 726). Re-attempting payment atblock 726 can include re-attempting payment with an amount less than thetotal amount due, as described above.

At block 728, if the payment status indicator is successful, theapplication server 102 or network interface 184 can transmit the invoicenumber and the amount paid by the user to the merchant server 104.Processor 182 can execute CRPI 192 to generate a message (for example,one or more messages) that contains the invoice number and the amountpaid. Block 728 can include transmitting that message to merchant server104.

At block 730, merchant server 104 or processor 800, executing CRPI 810,can process the invoice number and the amount paid according to themerchant's accounting procedures. Processing the invoice number and theamount paid can include receiving the message transmitted block 728.After processing the invoice number and the amount paid, merchant server104 can transmit, to electronic display device 132 or code scanner 106,a payment receipt showing the amount paid at block 716.

V. Variations and Benefits of Example Embodiments

Clearly, numerous variations and permutations are possible to theembodiments without departing from the scope of this disclosure: Some ofthese variations and permutations are described below.

1. In accordance with one or more of the disclosed embodiments, themerchant invoice and the payment QR code can be presented to the user inelectronic form instead of in hardcopy form. For example, the invoiceand the payment QR code can be provided to the user as a digital image.The user of code scanner 106 can then print a hardcopy of the image fromwhich to scan the payment QR code as described, or can display thedigital image on an electronic display device 132 and scan the paymentQR code directly from the electronic display device 132 in order toinitiate payment of the invoice.

With respect to the example embodiment shown in FIG. 6, the QR codeprovided at block 600 can comprise providing (for example, transmitting)the electronic QR code to electronic display device 132. Similarly, withrespect to the example embodiment shown in FIG. 7, the QR code providedat block 700 can comprise providing (for example, transmitting) theelectronic QR code to electronic display device 132. Merchant server 104can receive, from electronic display device 132, a request for aninvoice or QR codes prior to providing the electronic QR code at block600 or block 700. Blocks 600 or 700 can include providing (for example,transmitting) an electronic form of the invoice to electronic displaydevice 132.

2. In accordance with one or more of the disclosed embodiments, insteadof the user-profile 110 being stored only on the code scanner 106, theuser-profile 110 can be replicated and stored on the application server102 as a user-profile within user-profiles 198. In this embodiment, thescanner app 164 on the code scanner 106 synchronises changes to theuser-profile 110 with the copy of the user-profile on the applicationserver 102 as the changes occur, or periodically, or explicitly underuser command. The copy of the user-profile on the application server 102can then be imported to a different code scanner, for example when theuser changes smartphones or in the event the user loses or damages hercode scanner 106.

3. In accordance with one or more of the disclosed embodiments, in orderto improve security of the system 100, transmission of data from theuser-profile 110 to the application server 102 by the scanner app 164can be encrypted. Similarly, portions of the user-profile 110transmitted to the application server 102 to modify a user-profilestored within user-profiles 198 can be encrypted for that transmission.

4. In accordance with one or more of the disclosed embodiments, insteadof the application server 102 sending the particulars of the financialtransaction (for example, the amount due and the payment details) to apayment processor (not shown) for processing, the application server 102can process the payment itself.

5. In accordance with one or more of the disclosed embodiments, theuser-profile 110 on the code scanner 106 can include the user's mobilephone number in addition to the user's e-mail address. In embodiments inwhich the user-profile 110 is replicated and stored on the applicationserver 102 as well as on the code scanner 106, the application server102 may notify the user of the success or failure of an invoice paymentby one or more of SMS and e-mail messages in addition, or as analternative, to notification by means of a page refresh by the scannerapp 164 on the code scanner 106.

6. The use of Quick Response technology (QR codes), as described in theexample embodiments, can enable user interactions in connection withpayment at a merchant establishment to be conducted more efficientlythan is possible by means of known prior art methods. In accordance withat least one of those example embodiments, once a user has established auser-profile 110, the user need only scan, by means of the code scanner106, a QR code displayed on a merchant bill website or a hardcopy of thebill in order to effect payment of the bill. The user is spared thetedium of having to tender cash or a physical payment instrument such asa credit or debit card for payment. It is anticipated that the use of QRcodes for bill payment in this manner will reduce the tedium of billpayment.

7. In accordance with at least one example embodiment, afterestablishing the user-profile 110 and scanning the QR code on aninvoice, the only user action required to effect payment of the invoiceis entering a selection to accept invoice for payment.

8. In accordance with at least one example embodiment, afterestablishing the user-profile 110 and scanning the QR code on aninvoice, the only user action required to effect payment of the invoiceis selecting a payment instrument from the user-profile 110 or otherwiseentering information regarding the payment instrument.

9. In accordance with at least one example embodiment, afterestablishing the user-profile 110 and scanning the QR code on aninvoice, the only user actions required to effect payment of the invoiceis selecting a payment instrument from the user-profile 110 or otherwiseentering information regarding the payment instrument, and entering aselection to accept invoice for payment.

10. Data in the user-profile 110 is stored locally in the code scanner106. This means that sensitive user data such as particulars of paymentinstruments like credit or debit cards need not be handed over to otherpersons such as, for example, a waiter or a merchant, thus reducing thepossibility of such particulars being misappropriated.

VI. Additional Example Embodiments

The following clauses are offered as further description of thedisclosed inventions.

Clause 1—A method comprising:

scanning, using a code scanner, a first quick response (QR) code thatencodes a merchant identification code assigned to a merchant thatgenerates a first invoice, wherein the first invoice comprises firstinvoice data;

decoding, using the code scanner, the first QR code to recover themerchant identification code encoded within the first QR code;

selecting, using the code scanner, a first payment instrument to pay thefirst invoice;

transmitting, from the code scanner to an application server for aninitial attempt of paying the first invoice, the merchant identificationcode encoded in the first QR code, data pertaining to the first paymentinstrument, and at least a portion of the first invoice data; and

receiving, at the code scanner from the application server, first statusdata indicating whether the initial attempt of paying the first invoicewas successful or unsuccessful.

Clause 2—The method of clause 1,

wherein the first QR code encodes the first invoice data of the firstinvoice, and

wherein decoding the first QR code includes the code scanner recoveringthe first invoice data encoded within the first QR code,

the method further comprising:

displaying, using the code scanner, the first invoice data recoveredfrom the first QR code.

Clause 3—The method of as in one of clauses 1-2,

wherein at least one of the merchant identification code and the firstinvoice data encoded within the first QR code is encrypted, and

wherein decoding the first QR code includes the code scanner using anencryption key to decrypt the at least one of the merchantidentification code and the first invoice data.

Clause 4—The method as in one of clauses 1-3, further comprising:

amending, using the code scanner, a portion of the first invoice data,

wherein the at least a portion of the first invoice data transmitted tothe application server comprises the amended portion of the firstinvoice data.

Clause 5—The method of clause 4, wherein the amended portion of thefirst invoice data comprises at least one of a payment amount and abilling address associated with a user of the code scanner.

Clause 6—The method as in one of clauses 1-2, further comprising:

scanning, using the code scanner, a second QR code that encodes amerchant identification code assigned to a merchant that generates asecond invoice, wherein the second invoice comprises second invoicedata;

decoding, using the code scanner, the second QR code to recover themerchant identification code encoded within the second QR code;

selecting, using the code scanner, a first payment instrument to pay thesecond invoice;

transmitting, from the code scanner to the application server for aninitial attempt of paying the second invoice, the merchantidentification code encoded in the second QR code, data pertaining tothe first payment instrument selected to pay the second invoice, and atleast a portion of the second invoice data;

receiving, at the code scanner from the application server, secondstatus data indicating whether the initial attempt of paying the secondinvoice was successful or unsuccessful; and

if the second status data indicates the initial attempt of paying thesecond invoice was successful, then displaying, using the code scanner,a notification that payment of the second invoice was successful,otherwise, if the second status data indicates the initial attempt ofpaying the second invoice was unsuccessful, then displaying, using thecode scanner, a notification that payment of the second invoice wasunsuccessful.

Clause 7—The method of clause 6,

wherein the merchant that generates the first invoice is the merchantthat generates the second invoice,

wherein the merchant identification code encoded in the first QR code isidentical to the merchant identification code encoded in the second QRcode.

Clause 8—The method of clause 6,

wherein the merchant that generates the first invoice is different thanthe merchant that generates the second invoice,

wherein the merchant identification code encoded in the first QR codediffers from the merchant identification code encoded in the second QRcode.

Clause 9—The method as in one of clauses 6-8, wherein the paymentinstrument selected to pay the second invoice is the first paymentinstrument.

Clause 10—The method as in one of clauses 6-8, wherein the paymentinstrument selected to pay the second invoice is a payment instrumentother than the first payment instrument.

Clause 11—The method as in one of clauses 6-10,

wherein the second status data indicates the initial attempt of payingthe second invoice was unsuccessful,

the method further comprising:

transmitting, from the code scanner to the application server, data forperforming at least one additional attempt of paying the second invoice;

receiving, at the code scanner from the application server, dataindicating that an additional attempt of paying the second invoice wassuccessful and then displaying, using the code scanner, a notificationthat the additional attempt of paying the second invoice was successful.

Clause 12—The method of clause 11, further comprising:

selecting, using the code scanner, a second payment instrument to paythe second invoice,

wherein the data for performing the at least one additional attempt ofpaying the second invoice comprises data pertaining to the secondpayment instrument selected to pay the second invoice.

Clause 13—The method of clause 11, further comprising:

selecting, using the code scanner, a partial payment amount that is lessthan a total amount due on the second invoice;

wherein the data for performing the at least one additional attempt ofpaying the second invoice comprises the partial payment amount that isless than a total amount due on the second invoice, and

wherein successful payment of the second invoice occurs by paying thepartial payment amount that is less than a total amount due on thesecond invoice.

Clause 14—The method of clause 13, wherein the notification that theadditional attempt of paying the second invoice was successful indicatesa remaining balance due to a merchant.

Clause 15—The method of clause 1,

wherein the first status data indicates the initial attempt of payingthe first invoice was unsuccessful,

the method further comprising:

transmitting, from the code scanner to the application server, data forperforming at least one additional attempt of paying the first invoice;

receiving, at the code scanner from the application server, dataindicating that an additional attempt of paying the first invoice wassuccessful and then displaying, using the code scanner, a notificationthat the additional attempt of paying the first invoice was successful.

Clause 16—The method of clause 15, further comprising:

selecting, using the code scanner, a second payment instrument to paythe first invoice,

wherein the data for performing the at least one additional attempt ofpaying the first invoice comprises data pertaining to the second paymentinstrument.

Clause 17—The method of clause 15, further comprising:

selecting, using the code scanner, a partial payment amount that is lessthan a total amount due on the first invoice;

wherein the data for performing the at least one additional attempt ofpaying the first invoice comprises the partial payment amount, and

wherein successful payment of the first invoice occurs by paying thepartial payment amount that is less than a total amount due on the firstinvoice.

Clause 18—The method as in one of clauses 15-17, wherein thenotification that the additional attempt of paying the first invoice wassuccessful indicates a remaining balance due to a merchant.

Clause 19—The method as in one of clauses 1-18, wherein scanning thefirst QR code comprises scanning the first QR code from a paper copy ofthe first invoice.

Clause 20—The method as in one of clauses 1-19, wherein scanning thefirst QR code comprises scanning the first QR code from the firstinvoice displayed on a QR code display device.

Clause 21—The method as in one of clauses 1-20, wherein the datapertaining to the first payment instrument comprises at least one of acredit card number, a debit card number, a cardholder name, a cardexpiry date, a card verification code, a personal identification number,and a mailing code associated with the cardholder.

Clause 22—The method as in one of clauses 1-21, wherein if the firststatus data indicates the initial attempt of paying the first invoicewas successful, then displaying, using the code scanner, a notificationthat payment of the first invoice was successful, otherwise, if thefirst status data indicates the initial attempt of paying the firstinvoice was unsuccessful, then displaying, using the code scanner, anotification that payment of the first invoice was unsuccessful.

Clause 23—A code scanner device comprising:

a processor; and

a computer-readable data storage device comprising program instructionsexecutable by the processor to carry out a method of any one of clauses1 through 22.

Clause 24—A computer-readable data storage device comprisingcomputer-readable program instructions executable by a processor tocarry out a method of any one of clauses 1 through 22.

Clause 25—The computer-readable data storage device of clause 24,wherein the computer-readable data storage device is a non-transitorycomputer-readable data storage device.

Clause 26—A computer data signal embodied in a carrier wave, thecomputer data signal comprising computer-readable program instructionsfor performing a method of any one of clauses 1 through 22.

Clause 27—A reproducible computer-readable signal carryingcomputer-readable program instructions for performing a method of anyone of clauses 1 through 22.

Clause 28—A computer software product for registering a user of a dataprocessing system with a merchant server, the software productcomprising instructions, that when executed by a processor of the dataprocessing system will cause the data processing system to carry out thefunctions of any one clauses 1 through 22.

Clause 29—A code scanner comprising:

a processor;

a scanner configured to scan a first quick response (QR) code thatencodes a merchant identification code assigned to a merchant thatgenerates a first invoice, wherein the first invoice comprises firstinvoice data;

a data storage device that stores a computer-readable scannerapplication executable by the processor to decode the first QR code torecover the merchant identification code encoded within the first QRcode;

a user interface configured to select a first payment instrument to paythe first invoice;

a network interface,

wherein the network interface is configured to transmit, to anapplication server for an initial attempt of paying the first invoice,the merchant identification code encoded in the first QR code, datapertaining to the first payment instrument, and at least a portion ofthe first invoice data, and

wherein the network interface is configured to receive, from theapplication server, first status data indicating whether the initialattempt of paying the first invoice was successful or unsuccessful.

Clause 30—The code scanner of clause 29, wherein, if the first statusdata indicates the initial attempt of paying the first invoice wassuccessful, then the user interface displays a notification that paymentof the first invoice was successful, otherwise, if the first status dataindicates the initial attempt of paying the first invoice wasunsuccessful, then the user interface displays a notification thatpayment of the first invoice was unsuccessful.

Clause 31—The code scanner as in one of clauses 28-29,

wherein the first QR code encodes the first invoice data of the firstinvoice,

wherein decoding the first QR code includes the processor recovering thefirst invoice data encoded within the first QR code, and

wherein the user interface comprises a display device that displays thefirst invoice data recovered from the first QR code.

Clause 32—The code scanner of clause 31,

wherein at least one of the merchant identification code and the firstinvoice data encoded within the first QR code is encrypted, and

wherein decoding the first QR code includes the processor using anencryption key to decrypt the at least one of the merchantidentification code and the first invoice data.

Clause 33—The code scanner as in one of clauses 31-32,

wherein the processor amends a portion of the first invoice data, and

wherein the at least a portion of the first invoice data transmitted tothe application server comprises the amended portion of the firstinvoice data.

Clause 34—The code scanner of clause 33, wherein the amended portion ofthe first invoice data comprises at least one of a payment amount and abilling address associated with a user of the code scanner.

Clause 35—The code scanner as in one of clauses 31-34,

wherein the scanner is configured to scan a second QR code that encodesa merchant identification code assigned to a merchant that generates asecond invoice, wherein the second invoice comprises second invoicedata,

wherein the processor decodes the second QR code to recover the merchantidentification code encoded within the second QR code,

wherein the user interface is configured to select a first paymentinstrument to pay the second invoice;

wherein the network interface is configured to transmit, to theapplication server for an initial attempt of paying the second invoice,the merchant identification code encoded in the second QR code, datapertaining to the first payment instrument selected to pay the secondinvoice, and at least a portion of the second invoice data, and

wherein the network interface is configured to receive, from theapplication server, second status data indicating whether the initialattempt of paying the second invoice was successful or unsuccessful, and

wherein, if the second status data indicates the initial attempt ofpaying the second invoice was successful, then displaying, using thecode scanner, a notification that payment of the second invoice wassuccessful, otherwise, if the second status data indicates the initialattempt of paying the second invoice was unsuccessful, then displaying,using the code scanner, a notification that payment of the secondinvoice was unsuccessful.

Clause 36—The code scanner of clause 35,

wherein the merchant that generates the first invoice is the merchantthat generates the second invoice, and

wherein the merchant identification code encoded in the first QR code isidentical to the merchant identification code encoded in the second QRcode.

Clause 37—The code scanner of clause 35,

wherein the merchant that generates the first invoice is different thanthe merchant that generates the second invoice, and

wherein the merchant identification code encoded in the first QR codediffers from the merchant identification code encoded in the second QRcode.

Clause 38—The code scanner as in one of clauses 35-37, wherein thepayment instrument selected to pay the second invoice is the firstpayment instrument.

Clause 39—The code scanner as in one of clauses 35-37, wherein thepayment instrument selected to pay the second invoice is a paymentinstrument other than the first payment instrument.

Clause 40—The code scanner as in one of clauses 35-39,

wherein the second status data indicates the initial attempt of payingthe second invoice was unsuccessful,

wherein the network interface is configured to transmit, to theapplication server, data for performing at least one additional attemptof paying the second invoice,

wherein the network interface is configured to receive, from theapplication server, data indicating that an additional attempt of payingthe second invoice was successful,

wherein the user interface displays a notification that the additionalattempt of paying the second invoice was successful.

Clause 41—The code scanner of clause 40,

wherein the user interface is configured to select a second paymentinstrument to pay the second invoice, and

wherein the data for performing the at least one additional attempt ofpaying the second invoice comprises data pertaining to the secondpayment instrument selected to pay the second invoice.

Clause 42—The code scanner of clause 40,

wherein the user interface is configured to select a partial paymentamount that is less than a total amount due on the second invoice,

wherein the data for performing the at least one additional attempt ofpaying the second invoice comprises the partial payment amount that isless than a total amount due on the second invoice, and

wherein successful payment of the second invoice occurs by paying thepartial payment amount that is less than a total amount due on thesecond invoice.

Clause 43—The code scanner of clause 42, wherein the notification thatthe additional attempt of paying the second invoice was successfulindicates a remaining balance due to a merchant.

Clause 44—The code scanner of clause 29,

wherein the first status data indicates the initial attempt of payingthe first invoice was unsuccessful,

wherein the network interface is configured to transmit, to theapplication server, data for performing at least one additional attemptof paying the first invoice;

wherein the network interface is configured to receive, from theapplication server, data indicating that an additional attempt of payingthe first invoice was successful,

wherein the user interface displays a notification that the additionalattempt of paying the first invoice was successful.

Clause 45—The code scanner of clause 44,

wherein the user interface is configured to select a second paymentinstrument to pay the first invoice, and

wherein the data for performing the at least one additional attempt ofpaying the first invoice comprises data pertaining to the second paymentinstrument.

Clause 46—The code scanner as in one of clauses 44-45,

wherein the user interface is configured to select a partial paymentamount that is less than a total amount due on the first invoice,

wherein the data for performing the at least one additional attempt ofpaying the first invoice comprises the partial payment amount, and

wherein successful payment of the first invoice occurs by paying thepartial payment amount that is less than a total amount due on the firstinvoice.

Clause 47—The code scanner of clause 46, wherein the notification thatthe additional attempt of paying the first invoice was successfulindicates a remaining balance due to a merchant.

Clause 48—The code scanner as in one of clauses 29-47, wherein scanningthe first QR code comprises scanning the first QR code from a paper copyof the first invoice.

Clause 49—The code scanner as in one of clauses 29-47, wherein scanningthe first QR code comprises scanning the first QR code from the firstinvoice displayed on a QR code display device.

Clause 50—The code scanner as in one of clauses 29-49, wherein the datapertaining to the first payment instrument comprises at least one of acredit card number, a debit card number, a cardholder name, a cardexpiry date, a card verification code, a personal identification number,and a mailing code associated with the cardholder.

Clause 51—A method comprising:

receiving, at an application server from a first code scanner, amerchant identification code assigned to a merchant that generates afirst invoice, wherein the first invoice comprises first invoice data;

receiving, at the application server from the first code scanner, datapertaining to a first payment instrument selected for an initial attemptof paying the first invoice;

receiving, at the application server from the first code scanner, atleast a portion of the first invoice data;

determining, at the application server, whether processing the merchantidentification code, the data pertaining to the first paymentinstrument, and the at least a portion of the first invoice data resultsin successful or unsuccessful payment of the first invoice; and

transmitting, from the application server to the first code scanner,first status data indicating whether the initial attempt of paying thefirst invoice was successful or unsuccessful.

Clause 52—The method of clause 51, further comprising:

transmitting, from the application server to a merchant server, anidentifier of the first invoice and an amount paid towards the firstinvoice.

Clause 53—The method as in one of clauses 51-52, further comprising:

storing, within a data storage device of the application server, auser-profile associated with a user of the first code scanner;

receiving, at the application server, a request to transmit theuser-profile to a second code scanner; and

transmitting the user-profile from the application server to the secondcode scanner.

Clause 54—The method of clause 53,

wherein user-profile comprises security data for authorizingtransmission of the user-profile from the application server to a codescanner,

wherein the request to transmit the user-profile comprises the securitydata and the application server determines the security data in therequest matches the security data in the user-profile prior totransmitting the user-profile to the second code scanner.

Clause 55—The method as in one of clauses 53-54, further comprising:

storing, within the data storage device of the application server, atleast one other user-profile associated with at least one other user ofanother code scanner,

wherein each of the at least one other user profile comprises data forpaying invoices for the user associated with that user profile.

Clause 56—The method as in one of clauses 53-55, further comprising:

receiving, at the application server, data to modify the user-profileassociated with the user of the first code scanner,

modifying, at the data storage device, the user-profile to comprise thedata to modify the user-profile; and

storing, at the data storage device, the modified user-profile.

Clause 57—The method as in one of clauses 51-56, further comprising:

transmitting the merchant identification code, the data pertaining tothe first payment instrument, and the at least a portion of the firstinvoice data to a payment processor,

wherein processing the merchant identification code, the data pertainingto the first payment instrument, and the at least a portion of the firstinvoice data occurs at the payment processor.

Clause 58—The method of clause 57, wherein the payment processor isremote from application server.

Clause 59—The method of clause 57, wherein the payment processor iswithin the application server.

Clause 60—The method as in one of clauses 51-59, further comprising:

transmitting, from the application server to the first code scanner, ascanner application for decoding a quick response (QR) code on aninvoice,

wherein the merchant identification code is encoded within a QR code onthe first invoice.

Clause 61—A code scanner device comprising:

a processor; and

a computer-readable data storage device comprising program instructionsexecutable by the processor to carry out a method of any one of clauses51 through 60.

Clause 62—A computer-readable data storage device comprisingcomputer-readable program instructions executable by a processor tocarry out a method of any one of clauses 51 through 60.

Clause 63—The computer-readable data storage device of clause 62,wherein the computer-readable data storage device is a non-transitorycomputer-readable data storage device.

Clause 64—A computer data signal embodied in a carrier wave, thecomputer data signal comprising computer-readable program instructionsfor performing a method of any one of clauses 51 through 60.

Clause 65—A reproducible computer-readable signal carryingcomputer-readable program instructions for performing a method of anyone of clauses 51 through 60.

Clause 66—A computer software product for registering a user of a dataprocessing system with a merchant server, the software productcomprising instructions, that when executed by a processor of the dataprocessing system will cause the data processing system to carry out thefunctions of any one clauses 51 through 60.

Clause 67—An application server comprising:

a processor;

a data storage device comprising computer-readable program instructions;

a network interface to receive, from a first code scanner, (i) amerchant identification code assigned to a merchant that generates afirst invoice, wherein the first invoice comprises first invoice data,(ii) data pertaining to a first payment instrument selected for aninitial attempt of paying the first invoice, and (iii) at least aportion of the first invoice data;

wherein the program instructions are executable by the processor todetermine whether processing the merchant identification code, the datapertaining to the first payment instrument, and the at least a portionof the first invoice data results in successful or unsuccessful paymentof the first invoice;

wherein the program instructions are executable by the processor tocause the network interface to transmit first status data to the firstcode scanner, and

wherein the first status data indicates whether the initial attempt ofpaying the first invoice was successful or unsuccessful.

Clause 68—The application server of clause 67, wherein the networkinterface transmits, to a merchant server, an identifier of the firstinvoice and an amount paid towards the first invoice.

Clause 69—The application server as in one of clauses 67-68,

wherein the data storage device stores a user-profile associated with auser of the first code scanner,

wherein the network interface receives, a request to transmit theuser-profile to a second code scanner, and

wherein the network interface transmits the user-profile to the secondcode scanner.

Clause 70—The application server of clause 69,

wherein user-profile comprises security data for authorizingtransmission of the user-profile from the application server to a codescanner,

wherein the request to transmit the user-profile comprises the securitydata and the application server determines the security data in therequest matches the security data in the user-profile prior totransmitting the user-profile to the second code scanner.

Clause 71—The application server as in one of clauses 69-70,

wherein the data storage device stores at least one other user-profileassociated with at least one other user of another code scanner, and

wherein each of the at least one other user profile comprises data forpaying invoices for the user associated with that user profile.

Clause 72—The application server as in one of clauses 69-71,

wherein the network interface receives data to modify the user-profileassociated with the user of the first code scanner,

wherein the processor modifies the user-profile with the data to modifythe user-profile; and

wherein the data storage device stores the modified user-profile.

Clause 73—The application server as in one of clauses 67-72,

wherein the network interface transmits the merchant identificationcode, the data pertaining to the first payment instrument, and the atleast a portion of the first invoice data to a payment processor,

wherein processing the merchant identification code, the data pertainingto the first payment instrument, and the at least a portion of the firstinvoice data occurs at the payment processor.

Clause 74—The application server of clause 73, wherein the paymentprocessor is remote from application server.

Clause 75—The application server of clause 73, wherein the paymentprocessor is within the application server.

Clause 76—The application server as in one of clauses 67-75,

wherein the network interface transmits, to the first code scanner, ascanner application for decoding a quick response (QR) code on aninvoice,

wherein the merchant identification code is encoded within a QR code onthe first invoice.

Clause 77—A method comprising:

receiving, at a merchant server, a first quick response (QR) code thatencodes a merchant identification code assigned to a merchant thatgenerates a first invoice, wherein the first invoice comprises firstinvoice data;

providing, from the merchant server to a code scanner user, the firstinvoice and the first QR code; and

receiving, at the merchant server from an application server thatprocesses payments of invoices, a message indicating a payment towardsthe first invoice was successfully made.

Clause 78—The method of clause 77, further comprising:

displaying, on a merchant computing device, a merchant portal websiteconfigured for entering data to register a first merchant with anapplication server that processes invoice payments for merchants;

transmitting, to the application sever from the merchant computingdevice, data entered onto the merchant portal website; and

receiving, at the merchant server from the application server, anotification indicating the merchant is registered with the applicationserver for processing invoice payments for the first merchant.

Clause 79—The method of clause 78,

wherein the merchant portal web site comprises a plurality of fields forentering the data, and

wherein the plurality of fields includes a field selected from the groupconsisting of a business name field, a business street address field, abusiness city field, a business state field, a business mailing codefield, a business country field, a business type field, and an accountidentifier field.

Clause 80—The method of clause 79, wherein entering data into at leastone field of the plurality of fields can occur by selecting the datafrom predetermined field data.

Clause 81—The method as in one of clauses 78-80,

wherein the data entered to register the first merchant comprise aplurality of data items, and

wherein the plurality of data items includes a data item selected fromthe group consisting of a business name, a business street address, abusiness city, a business state, a business mailing code, a businesscountry, a business type, and an account identifier.

Clause 82—The method as in one of clauses 77-81, further comprising:

printing, using a printer of the merchant server, a hardcopy of thefirst invoice and the first QR code,

wherein providing the first invoice and the first QR code comprisesproviding the hardcopy of the first invoice and the first QR code to thecode scanner user.

Clause 83—The method of clause 82,

wherein printing the first QR code comprises printing an adhesivesticker showing the first QR code, and

wherein the adhesive sticker is adhered to the hardcopy of the firstinvoice.

Clause 84—The method as in one of clauses 77-81, wherein providing thefirst invoice and the first QR code to the code scanner user comprisingtransmitting, from the merchant server to a code scanner, an electronicversion of the first invoice and the first QR code.

Clause 85—The method as in one of clauses 77-84, wherein the first QRcode is a static

QR code that encodes the merchant identification code but does notencode any of the first invoice data.

Clause 86—The method of clause 85, wherein the merchant identificationcode is a unique numeric code assigned to the merchant by theapplication server.

Clause 87—The method of clause 85, wherein the merchant identificationcode is a unique alphanumeric code assigned to the merchant by theapplication server.

Clause 88—The method of clause 85, wherein the merchant identificationcode is a unique business name associated with the merchant.

Clause 89—The method as in one of clauses 77-88, wherein the first QRcode further encodes the first invoice data.

Clause 90—The method as in one of clauses 77-89, wherein the firstinvoice data comprises one of more of the following invoice elements: amerchant name, a merchant address, a customer name, a customer address,an invoice identifier, a date, a description and a corresponding cost ofeach line item that appears on the first invoice, a tax amount, and atotal amount due.

Clause 91—A code scanner device comprising:

a processor; and

a computer-readable data storage device comprising program instructionsexecutable by the processor to carry out a method of any one of clauses77 through 90.

Clause 92—A computer-readable data storage device comprisingcomputer-readable program instructions executable by a processor tocarry out a method of any one of clauses 77 through 90.

Clause 93—The computer-readable data storage device of clause 92,wherein the computer-readable data storage device is a non-transitorycomputer-readable data storage device.

Clause 94—A computer data signal embodied in a carrier wave, thecomputer data signal comprising computer-readable program instructionsfor performing a method of any one of clauses 77 through 90.

Clause 95—A reproducible computer-readable signal carryingcomputer-readable program instructions for performing a method of anyone of clauses 77 through 90.

Clause 96—A computer software product for registering a user of a dataprocessing system with a merchant server, the software productcomprising instructions, that when executed by a processor of the dataprocessing system will cause the data processing system to carry out thefunctions of any one clauses 77 through 90.

Clause 97—A merchant server comprising:

a processor;

a data storage device comprising computer readable program instructions;and

a network interface that (i) receives a first quick response (QR) codethat encodes a merchant identification code assigned to a merchant thatgenerates a first invoice, wherein the first invoice comprises firstinvoice data, (ii) transmits the first invoice and the first QR code;and (iii) receives, from an application server that processes paymentsof invoices, a message indicating a payment towards the first invoicewas successfully made.

Clause 98—The merchant server of clause 97, further comprising:

a merchant computing device that displays a merchant portal websiteconfigured for entering data to register a first merchant with anapplication server that processes invoice payments for merchants,

wherein the network interface is configured to transmit, to theapplication sever from the merchant computing device, data entered ontothe merchant portal website, and

wherein the network interface is configured to receive, from theapplication server, a notification indicating the merchant is registeredwith the application server for processing invoice payments for thefirst merchant.

Clause 99—The merchant server as in one of clauses 97-98,

wherein the merchant portal website comprises a plurality of fields forentering the data, and

wherein the plurality of fields includes a field selected from the groupconsisting of a business name field, a business street address field, abusiness city field, a business state field, a business mailing codefield, a business country field, a business type field, and an accountidentifier field.

Clause 100—The merchant server of clause 99, wherein entering data intoat least one field of the plurality of fields can occur by selecting thedata from predetermined field data.

Clause 101—The merchant server as in one of clauses 98-100, wherein thedata entered to register the first merchant comprise a plurality of dataitems, and

wherein the plurality of data items includes a data item selected fromthe group consisting of a business name, a business street address, abusiness city, a business state, a business mailing code, a businesscountry, a business type, and an account identifier.

Clause 102—The merchant server as in one of clauses 97-101, furthercomprising:

a printer that prints a hardcopy of the first invoice and the first QRcode,

wherein the network interface transmits the first invoice and the firstQR code to the printer,

wherein the printer prints a hardcopy of the first invoice and the firstQR code, and

wherein payment of the first invoice occurs after a code scanner scansthe hardcopy of the first invoice and the first QR code.

Clause 103—The merchant server of clause 102,

wherein printing the first QR code comprises printing an adhesivesticker showing the first QR code, and

wherein the adhesive sticker is adhered to the hardcopy of the firstinvoice.

Clause 104—The merchant server of clause 97, wherein transmitting thefirst invoice and the first QR code comprises the network interfacetransmitting an electronic version of the first invoice and the first QRcode to a code scanner.

Clause 105—The merchant server as in one of clauses 97-104, wherein thefirst QR code is a static QR code that encodes the merchantidentification code but does not encode any of the first invoice data.

Clause 106—The merchant server of clause 105, wherein the merchantidentification code is a unique numeric code assigned to the merchant bythe application server.

Clause 107—The merchant server of clause 105, wherein the merchantidentification code is a unique alphanumeric code assigned to themerchant by the application server.

Clause 108—The merchant server of clause 105, wherein the merchantidentification code is a unique business name associated with themerchant.

Clause 109—The merchant server as in one of clauses 97-108, wherein thefirst QR code further encodes the first invoice data.

Clause 110—The merchant server as in one of clauses 97-109, wherein thefirst invoice data comprises one of more of the following invoiceelements: a merchant name, a merchant address, a customer name, acustomer address, an invoice identifier, a date, a description and acorresponding cost of each line item that appears on the first invoice,a tax amount, and a total amount due.

Clause 111—A method carried out by a data processing system fortransferring funds from a first party with a first party device to asecond party with a second party device, using a financial server whichhas a first party wallet for storing funds of the first party and asecond party wallet for storing funds of the second party, wherein thereis generated a unique identifier for a transaction in which funds willbe transferred from the first party to the second party; using theunique identifier the first party authorises the financial server totransfer funds stored in the first party wallet to the second party; thefinancial server transfers funds from the first party wallet to thesecond party wallet in accordance with the authorisation received fromthe first party; and the financial server notifies the second party thatthe transaction has taken place.

Clause 112—The method of clause 111, wherein the first party is a clientand the second party is a merchant and the financial transaction is forthe client to pay a bill from the merchant, the method comprising thefollowing steps carried out on the first party device:

scanning an encoding of the bill;

in response to scanning the encoding of the bill, transmitting theencoding of the bill to the financial server;

receiving, from the financial server, content of the bill, wherein thecontent of the bill includes at least an itemized list of purchases;

in response to receiving the content of the bill, prompting selection ofa service charge from a list of service charges;

receiving a selected service charge enumerated in the list of servicecharges; and

in response to receiving the selected service charge, adding theselected service charge to the bill and transmitting authorization, tothe financial server, to transfer a total amount from the first partywallet to the second party wallet, wherein the total amount includescharges associated with the itemized list of purchases and the selectedservice charge.

VII. Conclusion

Example embodiments have been described above. Those skilled in the artwill understand that changes and modifications can be made to thedescribed embodiments without departing from the true scope and spiritof the present invention, which is defined by the claims.

This detailed description describes various features and functions ofthe disclosed systems, devices, and methods with reference to theaccompanying figures. In the figures, similar symbols typically identifysimilar components, unless context dictates otherwise. The illustrativeembodiments described in the detailed description, figures, and claimsare not meant to be limiting. Other embodiments can be used, and otherchanges can be made, without departing from the spirit or scope of thesubject matter presented herein. It will be readily understood that theaspects of the present disclosure, as generally described herein, andillustrated in the figures, can be arranged, substituted, combined,separated, and designed in a wide variety of different configurations,all of which are explicitly contemplated herein.

With respect to any or all of the message flow diagrams, scenarios, andflow charts in the figures and as discussed herein, each step, blockand/or communication can represent a processing of information and/or atransmission of information in accordance with example embodiments.Alternative embodiments are included within the scope of these exampleembodiments. In these alternative embodiments, for example, functionsdescribed as steps, blocks, transmissions, communications, requests,responses, and/or messages can be executed out of order from that shownor discussed, including in substantially concurrent or in reverse order,depending on the functionality involved. Further, more or fewer steps,blocks and/or functions can be used with any of the message flowdiagrams, scenarios, and flow charts discussed herein, and these messageflow diagrams, scenarios, and flow charts can be combined with oneanother, in part or in whole.

A step or block that represents a processing of information cancorrespond to circuitry that can be configured to perform the specificlogical functions of a herein-described method or technique.Alternatively or additionally, a step or block that represents aprocessing of information can correspond to a module, a segment, or aportion of program code (including related data). The program code caninclude one or more instructions executable by a processor forimplementing specific logical functions or actions in the method ortechnique. The program code and/or related data can be stored on anytype of computer-readable medium such as a storage device including adisk or hard drive or other storage media.

The computer-readable medium can include non-transitorycomputer-readable media such as computer-readable media that stores datafor short periods of time like register memory, processor cache, and/orrandom access memory (RAM). The computer-readable media can includenon-transitory computer-readable media that stores program code and/ordata for longer periods of time, such as secondary or persistent longterm storage, like read only memory (ROM), optical or magnetic disks,and/or compact-disc read only memory (CD-ROM), for example. Thecomputer-readable media can be any other volatile or non-volatilestorage systems. A computer-readable medium can be considered acomputer-readable storage medium, for example, or a tangible storagedevice. Any data identified as being stored within a data storage deviceor transmitted to a device for storage within a data storage device cancomprise a computer data signal embodied in a carrier wave.

Moreover, a step or block that represents one or more informationtransmissions can correspond to information transmissions betweensoftware and/or hardware modules in the same physical device. However,other information transmissions can be between software modules and/orhardware modules in different physical devices.

While various aspects and embodiments have been disclosed herein, otheraspects and embodiments will be apparent to those skilled in the art.The various aspects and embodiments disclosed herein are for purposes ofillustration and are not intended to be limiting.

1. A method comprising: scanning, using a code scanner, a first quickresponse (QR) code that encodes a merchant identification code assignedto a merchant that generates a first invoice, wherein the first invoicecomprises first invoice data; decoding, using the code scanner, thefirst QR code to recover the merchant identification code encoded withinthe first QR code; selecting, using the code scanner, a first paymentinstrument to pay the first invoice; transmitting, from the code scannerto an application server for an initial attempt of paying the firstinvoice, the merchant identification code encoded in the first QR code,data pertaining to the first payment instrument, and at least a portionof the first invoice data; and receiving, at the code scanner from theapplication server, first status data indicating whether the initialattempt of paying the first invoice was successful or unsuccessful. 2.The method of claim 1, wherein the first QR code encodes the firstinvoice data of the first invoice, and wherein decoding the first QRcode includes the code scanner recovering the first invoice data encodedwithin the first QR code, the method further comprising: displaying,using the code scanner, the first invoice data recovered from the firstQR code.
 3. The method of claim 2, wherein at least one of the merchantidentification code and the first invoice data encoded within the firstQR code is encrypted, and wherein decoding the first QR code includesthe code scanner using an encryption key to decrypt the at least one ofthe merchant identification code and the first invoice data.
 4. Themethod of claim 2, further comprising: amending, using the code scanner,a portion of the first invoice data, wherein the at least a portion ofthe first invoice data transmitted to the application server comprisesthe amended portion of the first invoice data.
 5. The method of claim 4,wherein the amended portion of the first invoice data comprises at leastone of a payment amount and a billing address associated with a user ofthe code scanner.
 6. The method of claim 2, further comprising:scanning, using the code scanner, a second QR code that encodes amerchant identification code assigned to a merchant that generates asecond invoice, wherein the second invoice comprises second invoicedata; decoding, using the code scanner, the second QR code to recoverthe merchant identification code encoded within the second QR code;selecting, using the code scanner, a first payment instrument to pay thesecond invoice; transmitting, from the code scanner to the applicationserver for an initial attempt of paying the second invoice, the merchantidentification code encoded in the second QR code, data pertaining tothe first payment instrument selected to pay the second invoice, and atleast a portion of the second invoice data; receiving, at the codescanner from the application server, second status data indicatingwhether the initial attempt of paying the second invoice was successfulor unsuccessful; and if the second status data indicates the initialattempt of paying the second invoice was successful, then displaying,using the code scanner, a notification that payment of the secondinvoice was successful, otherwise, if the second status data indicatesthe initial attempt of paying the second invoice was unsuccessful, thendisplaying, using the code scanner, a notification that payment of thesecond invoice was unsuccessful.
 7. The method of claim 6, wherein themerchant that generates the first invoice is the merchant that generatesthe second invoice, wherein the merchant identification code encoded inthe first QR code is identical to the merchant identification codeencoded in the second QR code.
 8. The method of claim 6, wherein themerchant that generates the first invoice is different than the merchantthat generates the second invoice, wherein the merchant identificationcode encoded in the first QR code differs from the merchantidentification code encoded in the second QR code.
 9. The method ofclaim 6, wherein the payment instrument selected to pay the secondinvoice is the first payment instrument.
 10. The method of claim 6,wherein the payment instrument selected to pay the second invoice is apayment instrument other than the first payment instrument.
 11. Themethod of claim 6, wherein the second status data indicates the initialattempt of paying the second invoice was unsuccessful, the methodfurther comprising: transmitting, from the code scanner to theapplication server, data for performing at least one additional attemptof paying the second invoice; receiving, at the code scanner from theapplication server, data indicating that an additional attempt of payingthe second invoice was successful and then displaying, using the codescanner, a notification that the additional attempt of paying the secondinvoice was successful.
 12. The method of claim 11, further comprising:selecting, using the code scanner, a second payment instrument to paythe second invoice, wherein the data for performing the at least oneadditional attempt of paying the second invoice comprises datapertaining to the second payment instrument selected to pay the secondinvoice.
 13. The method of claim 11, further comprising: selecting,using the code scanner, a partial payment amount that is less than atotal amount due on the second invoice; wherein the data for performingthe at least one additional attempt of paying the second invoicecomprises the partial payment amount that is less than a total amountdue on the second invoice, and wherein successful payment of the secondinvoice occurs by paying the partial payment amount that is less than atotal amount due on the second invoice.
 14. The method of claim 13,wherein the notification that the additional attempt of paying thesecond invoice was successful indicates a remaining balance due to amerchant.
 15. The method of claim 1, wherein the first status dataindicates the initial attempt of paying the first invoice wasunsuccessful, the method further comprising: transmitting, from the codescanner to the application server, data for performing at least oneadditional attempt of paying the first invoice; receiving, at the codescanner from the application server, data indicating that an additionalattempt of paying the first invoice was successful and then displaying,using the code scanner, a notification that the additional attempt ofpaying the first invoice was successful.
 16. The method of claim 15,further comprising: selecting, using the code scanner, a second paymentinstrument to pay the first invoice, wherein the data for performing theat least one additional attempt of paying the first invoice comprisesdata pertaining to the second payment instrument.
 17. The method ofclaim 15, further comprising: selecting, using the code scanner, apartial payment amount that is less than a total amount due on the firstinvoice; wherein the data for performing the at least one additionalattempt of paying the first invoice comprises the partial paymentamount, and wherein successful payment of the first invoice occurs bypaying the partial payment amount that is less than a total amount dueon the first invoice.
 18. The method of claim 17, wherein thenotification that the additional attempt of paying the first invoice wassuccessful indicates a remaining balance due to a merchant.
 19. Themethod of claim 1, wherein scanning the first QR code comprises scanningthe first QR code from a paper copy of the first invoice.
 20. The methodof claim 1, wherein scanning the first QR code comprises scanning thefirst QR code from the first invoice displayed on a QR code displaydevice. 21-110. (canceled)